The recent boom in mobile computing has brought new challenges to software application developers. Many of the challenges stem from the wide variety of available devices, the need for a software application to be able to run on multiple types of devices, and the need for each application to provide a reasonable user experience regardless of the device on which it is running.
The difficulty in providing an optimal user experience on multiple devices stems from the different form-factors and user-interface paradigms that are present on different devices and operating systems. For example, users of a Smartphone expect a compact user interface (UI) that brings only the most important functions to the start screen, whereas users of a tablet device expect the layout of the mobile application's user interface to display a lot of information, which exploits the larger screen. As another example, users of a mobile device with a touch-screen expect pushbuttons rendered on the screen to be large enough to touch, while users of a device that has a pointer-based interface (e.g. a trackball) would expect active buttons to be smaller so as to make navigation between the buttons easier. As a further example, the graphic elements in a mobile application should usually match the screen size of the device. For example, this is a prominent issue with images that are used to render the background of a mobile application —especially if those images have rounded edges: if the background image is too small for the specific screen, a blank area will be left at the edges. If the image is too large, it will be cropped, and the rounded edges will not show. If the image is resized programmatically, the quality of gradients and other graphic elements will degrade. This is an issue across operating systems, but also within some specific operating systems, such as BlackBerry®. For instance, different BlackBerry® devices have different screen resolutions, and an application that was optimized to look good on a BlackBerry Bold® 9700 (which has a 480 ×320 screen resolution) will not necessarily look good on a BlackBerry Curve® 8520 (which has a 320 ×240 screen resolution).
A common approach to dealing with these usability issues is to design multiple versions of the user interface of the mobile application. Each version of the user interface is optimized to deal with a specific type of mobile device. For example, the Wall-Street-Journal® mobile application has a version for the small form-factor of the iPhone® smartphone, and a different version of the mobile application fur the larger form-factor of the iPad® tablet. For some mobile applications, the different user interfaces are coded to run within entirely different versions of the mobile application i.e., iPhone® users will download the iPhone® version of the mobile application, while iPad® users will download the iPad® version of the mobile application. In other cases, a single version of the mobile application identifies at run-time which device it is running on, and displays the appropriate user interface.
Creating multiple versions of the user interface is one way to provide users with an optimal experience for the device they are using. This goal is rather straightforward to achieve when there is a relatively small number of known form-factors for which the developer should optimize (for example, iPhone® Operating System applications, aka iOS® applications, should usually have two UI variants: one for the small form factor of iPhone and iPod®, and another for the large form factor of the iPad®).
However, the mobile landscape is extremely fragmented, and there are nowadays dozens of different vendors introducing hundreds and thousands of mobile device models, each one having somewhat different characteristics. As a result, developers that choose to target more than just iOS® devices are faced with additional complications. For example, the developer must choose how many different UI variants to create. Also, a mechanism must exist for choosing which UI variant to show in each device.
Choosing the UI variants is most often a business decision. Because each UI variant takes time and effort to create, it is usually up to the marketing department of an organization to decide how much optimization they require for each application: whether the optimization criteria include the size of the screen, or whether additional considerations are also included, such as whether the mobile device has a touch screen or a keyboard.
Once a decision regarding the number of UI variants is made, the mechanism for choosing which UI variant to show in a device becomes a usability issue: assuring that the most appropriate UI variant is used on each mobile device. This is not a simple issue to solve because the number of mobile device types available to the developer for testing during the development process is significantly smaller than the number of mobile device types available to the actual users. Moreover, new mobile devices are likely to be introduced to the market even after the development of the mobile application has been concluded.
One approach to solving this problem that is often used in mobile web sites, is to have the web site query a general-purpose repository of technical information about mobile devices. One example is the WURFL® repository. This repository might contain details such as the size of the screen, or the availability of a touch interface. However, the result of choosing the appropriate VI-variant just by analyzing such details provides limited quality. FIG. 1 demonstrates such a problematic situation.
FIG. 1 demonstrates the difference in screen sizes for an Android® Smartphone 10, iPad® tablet 14, and a Galaxy Tab® 12. The screen size of the Galaxy Tab® 12 is somewhere in the middle between that of the iPad® 14 and that of the Smartphone® 10. If the developers of the mobile application created two user interface variants- one that relies on the large screen of a tablet 14, and one which is optimized for the smaller screen of smartphones 10 - it is not obviously clear which one would be appropriate for the Galaxy Tab® 12.
Accordingly, there is a need to adapt mobile user interfaces to multiple form-factors. An appropriate user interface for a given device needs to be selected for any given particular use.